Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro-Economische Vraagstukken en Arbeidsmarkt

Over Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro-Economische Vraagstukken en Arbeidsmarkt


Publicatiedatum:
22-01-2026

Inwerkingtreding:
01-03-2026

2.39. Wat is de leeftijdsopbouw bij personeel in loondienst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: MEVA 2.39
2# Parameters: ?jaar
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-org: <http://purl.org/ozo/onz-org#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
11
12SELECT
13    ?Periode
14    (?vestiging AS ?Indeling)
15    (?zk_regio_code AS ?Zorgkantoorregiocode)
16    (SUM(?1620) AS ?Leeftijd_16_20)
17    (SUM(?2125) AS ?Leeftijd_21_25)
18    (SUM(?2630) AS ?Leeftijd_26_30)
19    (SUM(?3135) AS ?Leeftijd_31_35)
20    (SUM(?3640) AS ?Leeftijd_36_40)
21    (SUM(?4145) AS ?Leeftijd_41_45)
22    (SUM(?4650) AS ?Leeftijd_46_50)
23    (SUM(?5155) AS ?Leeftijd_51_55)
24    (SUM(?5660) AS ?Leeftijd_56_60)
25    (SUM(?6165) AS ?Leeftijd_61_65)
26    (SUM(?6670) AS ?Leeftijd_66_70)
27    (SUM(?7175) AS ?Leeftijd_71_75)
28{
29    {
30        SELECT  DISTINCT
31            ?Periode
32            ?vestiging
33            ?zk_regio_code
34            ?persoon
35            ?leeftijd
36        {
37            # -- Periode (kwartalen + totaal jaar) --
38            # BIND(2023 AS ?jaar)
39            VALUES ?kw { 1 2 3 4 0 }   # 0 = Totaal jaar
40            BIND(xsd:integer(?jaar) AS ?_jaar)
41
42            BIND( IF(?kw=0,
43                     xsd:date(CONCAT(STR(?_jaar), "-01-01")),
44                     xsd:date(CONCAT(STR(?_jaar), "-",
45                                     IF(?kw=1,"01-01",
46                                     IF(?kw=2,"04-01",
47                                     IF(?kw=3,"07-01","10-01")))))
48                ) AS ?start_periode )
49
50            BIND( IF(?kw=0,
51                xsd:date(CONCAT(STR(?_jaar), "-12-31")),
52                xsd:date(CONCAT(STR(?_jaar), "-",
53                                IF(?kw=1,"03-31",
54                                    IF(?kw=2,"06-30",
55                                    IF(?kw=3,"09-30","12-31")))))
56                  ) AS ?eind_periode )
57
58            BIND( IF(?kw=0, "Totaal jaar", CONCAT("Q", STR(?kw))) AS ?Periode )
59
60            ?overeenkomst
61                a onz-pers:ArbeidsOvereenkomst ;
62                onz-pers:heeftOpdrachtnemer ?persoon ;
63                onz-g:hasPart ?overeenkomst_afspraak .
64            ?overeenkomst_afspraak
65                a onz-pers:WerkOvereenkomstAfspraak ;
66                onz-g:startDatum ?start_afspraak .
67            OPTIONAL {
68                ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak
69            }
70            FILTER (?start_afspraak <= ?eind_periode && (?eind_afspraak >= ?start_periode || !BOUND(?eind_afspraak)))
71
72            ?persoon
73                a onz-g:Human ;
74                onz-g:hasDateOfBirth ?geboortedatum .
75
76            BIND(YEAR(?eind_periode) - YEAR(?geboortedatum) AS ?leeftijd_voorl)
77            BIND(IF(MONTH(?geboortedatum) > MONTH(?eind_periode)
78                || (MONTH(?geboortedatum) = MONTH(?eind_periode) && DAY(?geboortedatum) > DAY(?eind_periode)),
79                ?leeftijd_voorl - 1, ?leeftijd_voorl) AS ?leeftijd)
80
81            # bepaal vestiging en zorgkantoor regio voor iedere contractafspraak
82            ?overeenkomst_afspraak onz-g:isAbout ?locatie .
83            ?locatie
84                a onz-g:StationaryArtifact ;
85                onz-g:partOf* ?vestiging_uri .
86            ?vestiging_uri a onz-org:Vestiging ;
87                onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 .
88            BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
89            ?pc_gebied
90                onz-g:identifiedBy ?postcode ;
91                onz-g:partOf+ ?zk_regio .
92            ?zk_regio a onz-org:ZorgkantoorRegio .
93            {
94                ?vestiging_uri onz-g:identifiedBy ?vest_nr .
95                ?vest_nr a onz-org:Vestigingsnummer ;
96                    onz-g:hasDataValue ?vestiging .
97            	?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
98                 BIND(STRAFTER(STR(?zk_regio), "onz-org/") AS ?zk_regio_code)
99            } UNION {
100                # Includeer ook de organisatie als geheel en label deze als vestiging
101                ?vestiging_uri onz-org:vestigingVan ?organisatie_uri .
102                BIND("Totaal organisatie" AS ?vestiging)
103                BIND("n.v.t." AS ?zk_vestiging)
104                BIND("n.v.t." AS ?zk_regio_code)
105            }
106            BIND(IF(!BOUND(?zk_vestiging), ?zorgkantoor, ?zk_vestiging) AS ?zorgkantoor_vestiging)
107        }
108    }
109    BIND(IF(?leeftijd >= 16 && ?leeftijd <= 20, 1, 0) AS ?1620)
110    BIND(IF(?leeftijd >= 21 && ?leeftijd <= 25, 1, 0) AS ?2125)
111    BIND(IF(?leeftijd >= 26 && ?leeftijd <= 30, 1, 0) AS ?2630)
112    BIND(IF(?leeftijd >= 31 && ?leeftijd <= 35, 1, 0) AS ?3135)
113    BIND(IF(?leeftijd >= 36 && ?leeftijd <= 40, 1, 0) AS ?3640)
114    BIND(IF(?leeftijd >= 41 && ?leeftijd <= 45, 1, 0) AS ?4145)
115    BIND(IF(?leeftijd >= 46 && ?leeftijd <= 50, 1, 0) AS ?4650)
116    BIND(IF(?leeftijd >= 51 && ?leeftijd <= 55, 1, 0) AS ?5155)
117    BIND(IF(?leeftijd >= 56 && ?leeftijd <= 60, 1, 0) AS ?5660)
118    BIND(IF(?leeftijd >= 61 && ?leeftijd <= 65, 1, 0) AS ?6165)
119    BIND(IF(?leeftijd >= 66 && ?leeftijd <= 70, 1, 0) AS ?6670)
120    BIND(IF(?leeftijd >= 71 && ?leeftijd <= 75, 1, 0) AS ?7175)
121    BIND(IF(?leeftijd >= 75 , 1, 0) AS ?75_)
122}
123GROUP BY ?Periode ?vestiging ?zk_regio_code ?zorgkantoor_vestiging
124ORDER BY ?Periode ?vestiging
125